package com.eastfair.certificate.service;

import com.eastfair.boot.service.SuperCacheService;
import com.eastfair.boot.service.SuperService;
import com.eastfair.certificate.entity.FormFieldGroup;

import java.util.List;

import com.eastfair.certificate.vo.*;
import com.eastfair.certificate.dto.*;
import com.eastfair.core.base.R;
import org.springframework.web.bind.annotation.RequestBody;

/**
 * <p>
 * 业务接口
 * 动态表单组
 * </p>
 *
 * @author ligang
 * @date 2023-05-17
 */
public interface FormFieldGroupService extends SuperCacheService<FormFieldGroup> {
    /**
     * do转vo
     *
     * @param model
     */
    FormFieldGroupVO doToVo(FormFieldGroup model);

    /**
     * do转vo
     *
     * @param modelList
     */
    List<FormFieldGroupVO> doToVos(List<FormFieldGroup> modelList);


    /**
     * 通用查询
     *
     * @param modelDTO DTO
     * @param ids      主键id集合
     * @return list
     */
    List<FormFieldGroup> list(FormFieldGroupDTO modelDTO, List<Long> ids);

    /**
     * 通用查询
     *
     * @param modelDTO DTO
     * @param ids      主键id集合
     * @return list
     */
    List<FormFieldGroup> listOfCache(FormFieldGroupDTO modelDTO, List<Long> ids);


    /**
     * 查询详情
     * @param id
     * @return
     */
    FormFieldGroupVO findById(Long id);

    /**
     * 列表查询
     * @param formFieldGroup
     * @return
     */
    List<FormFieldGroupVO> queryList(FormFieldGroup formFieldGroup);

    /**
     * 复制表单
     *
     * @param formFieldSubsystemDTO
     * @return 是否成功
     */
    R<Boolean> copyFormFieldList(FormFieldSubsystemDTO formFieldSubsystemDTO);

    /**
     * 同步业务表单
     *
     * @param formFieldSubsystemDTO 表单
     * @return
     */
    R sycnsubmitForm(FormFieldSubsystemDTO formFieldSubsystemDTO);
}
